package com.ruoyi.service.purchase.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.domain.purchase.MesPurchaseReturnItem;
import com.ruoyi.mapper.purchase.MesPurchaseReturnItemMapper;
import com.ruoyi.service.purchase.IMesPurchaseReturnItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 采购退货明细Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
@Service
public class MesPurchaseReturnItemServiceImpl implements IMesPurchaseReturnItemService {
    @Autowired
    private MesPurchaseReturnItemMapper mesPurchaseReturnItemMapper;

    /**
     * 查询采购退货明细
     * 
     * @param itemId 采购退货明细主键
     * @return 采购退货明细
     */
    @Override
    public MesPurchaseReturnItem selectMesPurchaseReturnItemByItemId(Long itemId) {
        return mesPurchaseReturnItemMapper.selectMesPurchaseReturnItemByItemId(itemId);
    }

    /**
     * 查询采购退货明细列表
     * 
     * @param mesPurchaseReturnItem 采购退货明细
     * @return 采购退货明细
     */
    @Override
    public List<MesPurchaseReturnItem> selectMesPurchaseReturnItemList(MesPurchaseReturnItem mesPurchaseReturnItem) {
        return mesPurchaseReturnItemMapper.selectMesPurchaseReturnItemList(mesPurchaseReturnItem);
    }

    /**
     * 新增采购退货明细
     * 
     * @param mesPurchaseReturnItem 采购退货明细
     * @return 结果
     */
    @Override
    public int insertMesPurchaseReturnItem(MesPurchaseReturnItem mesPurchaseReturnItem) {
        mesPurchaseReturnItem.setCreateTime(DateUtils.getNowDate());
        mesPurchaseReturnItem.setCreateBy(SecurityUtils.getUsername());
        return mesPurchaseReturnItemMapper.insertMesPurchaseReturnItem(mesPurchaseReturnItem);
    }

    /**
     * 修改采购退货明细
     * 
     * @param mesPurchaseReturnItem 采购退货明细
     * @return 结果
     */
    @Override
    public int updateMesPurchaseReturnItem(MesPurchaseReturnItem mesPurchaseReturnItem) {
        mesPurchaseReturnItem.setUpdateTime(DateUtils.getNowDate());
        mesPurchaseReturnItem.setUpdateBy(SecurityUtils.getUsername());
        return mesPurchaseReturnItemMapper.updateMesPurchaseReturnItem(mesPurchaseReturnItem);
    }

    /**
     * 批量删除采购退货明细
     * 
     * @param itemIds 需要删除的采购退货明细主键
     * @return 结果
     */
    @Override
    public int deleteMesPurchaseReturnItemByItemIds(Long[] itemIds) {
        return mesPurchaseReturnItemMapper.deleteMesPurchaseReturnItemByItemIds(itemIds);
    }

    /**
     * 删除采购退货明细信息
     * 
     * @param itemId 采购退货明细主键
     * @return 结果
     */
    @Override
    public int deleteMesPurchaseReturnItemByItemId(Long itemId) {
        return mesPurchaseReturnItemMapper.deleteMesPurchaseReturnItemByItemId(itemId);
    }

    /**
     * 根据退货单ID查询明细列表
     * 
     * @param returnId 退货单ID
     * @return 明细列表
     */
    @Override
    public List<MesPurchaseReturnItem> selectItemListByReturnId(Long returnId) {
        return mesPurchaseReturnItemMapper.selectItemListByReturnId(returnId);
    }

    /**
     * 根据物料编码查询退货明细
     * 
     * @param materialCode 物料编码
     * @return 明细列表
     */
    @Override
    public List<MesPurchaseReturnItem> selectItemListByMaterialCode(String materialCode) {
        return mesPurchaseReturnItemMapper.selectItemListByMaterialCode(materialCode);
    }

    /**
     * 根据批次号查询退货明细
     * 
     * @param batchCode 批次号
     * @return 明细列表
     */
    @Override
    public List<MesPurchaseReturnItem> selectItemListByBatchCode(String batchCode) {
        return mesPurchaseReturnItemMapper.selectItemListByBatchCode(batchCode);
    }
}